﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ASPMVCUtil.Util
{
    public enum JsonResponseEnum
    {
        SUCCESS = 1,
        FAILURE = 2
    }

    /// <summary>
    /// Clase genérica para devolver datos de pedidos AJAX serializados en Json
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class JsonResponse<T>
    {
        /// <summary>
        /// Resultado, perteneciente a los valores de las constantes SUCCESS y FAILURE enumerados en ResultadoJsonTipo
        /// </summary>
        public JsonResponseEnum Result { get; private set; }
        /// <summary>
        /// Datos para enviar en la respuesta
        /// </summary>
        public T Data { get; private set; }

        public JsonResponse(JsonResponseEnum resultado, T datos)
        {
            Result = resultado;
            Data = datos;
        }

        public override string ToString()
        {
            return Data.ToString();
        }

        public static string listarErroresValidacion(IEnumerable<System.Web.Mvc.ValidationRuleViolation> ruleViolations)
        {
            var errores = "La validación del formulario no fue exitosa\n<ul>";
            foreach (var item in ruleViolations)
            {
                errores += "<li>" + item.ErrorMessage + "</li>";
            }
            errores += "</ul>";
            return errores;
        }
    }
}